<?php

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of medico
 *
 * @author jorge-luis
 */
class medico_controller extends CI_Controller {

    function __construct() {
        parent::__construct();
        session_start();
        $this->load->model('medico');
        $this->load->model('especialidad');
        $this->load->model('especialidad_medico');
        $this->load->model('usuario');
        $this->load->model('usuario_medico');
        $this->load->model('servicio');
    }

    function buscar() {
        $data['lista'] = $this->medico->buscar();
        $data['title'] = 'Medicos';
        $data['main'] = 'frm_medicos';
        $this->load->view('/inicio/header', $data);
        $this->load->view('/frm_principal_admin', $data);
    }

    function modificar() {
        $data['medico'] = $this->medico->modificar();
        $id = $this->uri->segment(3);
        $data['servicio'] = $this->servicio->buscarByMedico($id);
        foreach ($this->servicio->buscarByMedico($id) as $service) {
            $_SESSION['servicio_id'] = $service['id'];
        }
        $data['especialidades'] = $this->especialidad->buscarActivos();
        $data['especialidades_medico'] = $this->especialidad_medico->buscarByMedico();
        $data['title'] = 'editar medico';
        $data['main'] = 'frm_edit_medico';
        $this->load->view('/inicio/header', $data);
        $this->load->view('frm_principal_admin', $data);
    }

    function crear() {
        $data['title'] = 'crear medico';
        $data['main'] = 'frm_create_medico';
        $this->load->view('/inicio/header', $data);
        $data['especialidades'] = $this->especialidad->buscarActivos();
        $data['especialidades_medico'] = [];
        $this->load->view('frm_principal_admin', $data);
    }

    function validar() {
        $this->form_validation->set_rules('cedula', 'cedula', '|required|integer|max_length[10]|min_length[10]');
        $this->form_validation->set_rules('precio', 'precio', '|required|decimal');
        if ($this->form_validation->run() == false) {
            return false;
        } else {
            return true;
        }
    }

    function guardar() {
        if ($this->validar() == true) {
            $datos = array(
                'nombres' => $this->input->post("nombres"),
                'apellidos' => $this->input->post("apellidos"),
                'numero_identificacion' => $this->input->post("cedula"),
                'direccion' => $this->input->post("direccion"),
                'telefono' => $this->input->post("telefono"),
                'celular' => $this->input->post("celular"),
                'email' => $this->input->post("email"),
                'titulo' => $this->input->post("titulo"),
            );

            $id = $this->medico->guardar($datos);
            $data_user['username'] = $this->input->post("cedula");
            $data_user['clave'] = $this->input->post("cedula");
            $data_user['es_activo'] = 1;
            $data_user['es_superUsuario'] = 0;
            $id_user = $this->usuario->guardar($data_user);
            $data_user_medico['medico_id'] = $id;
            $data_user_medico['usuario_id'] = $id_user;
            $this->usuario_medico->guardar($data_user_medico);
            if (isset($_POST['especialidades'])) {
                foreach ($_POST['especialidades'] as $value) {
                    $data['especialidad_id'] = $value;
                    $data['medico_id'] = $id;
                    $id_em = $this->especialidad_medico->grabar($data);
                    $datosServicio['nombre'] = 'Consulta';
                    $datosServicio['precio_costo'] = $this->input->post("precio");
                    $datosServicio['pvp'] = $this->input->post("precio");
                    $datosServicio['especialidad_medico_id'] = $id_em;
                    $this->servicio->grabar($datosServicio);
                }
                if ($id > 0) {
                    $this->buscar();
                }
            }
        }
    }

    function editar() {
        if ($this->validar() == true) {
            $datos = array(
                'nombres' => $this->input->post("nombres"),
                'apellidos' => $this->input->post("apellidos"),
                'numero_identificacion' => $this->input->post("cedula"),
                'direccion' => $this->input->post("direccion"),
                'telefono' => $this->input->post("telefono"),
                'celular' => $this->input->post("celular"),
                'email' => $this->input->post("email"),
                'titulo' => $this->input->post("titulo"),
            );
            $especialidades_selected = array();
            $especialidades_no_selected = array();
            if (isset($_POST['especialidades'])) {
                foreach ($_POST['especialidades'] as $value) {
                    $especialidades_selected[$value] = $value;
                    $object = $this->especialidad_medico->buscarByMedicoEspecialidad($value);
                    if ($object != null) {
                        $data_grabar['id'] = $value;
                        $data_grabar['especialidad_id'] = $value;
                        $data_grabar['medico_id'] = $this->uri->segment(3);
                        $this->especialidad_medico->editar($data_grabar);
                        $datosServicio['nombre'] = 'Consulta';
                        $datosServicio['precio_costo'] = $this->input->post("precio");
                        $datosServicio['pvp'] = $this->input->post("precio");
                        $datosServicio['especialidad_medico_id'] = $object[0]['id'];
                        $this->servicio->editar($datosServicio, $_SESSION['servicio_id']);
                    } else {
                        $data['especialidad_id'] = $value;
                        $data['medico_id'] = $id = $this->uri->segment(3);
                        $id = $this->especialidad_medico->grabar($data);
                    }
                }

                foreach ($this->especialidad_medico->buscarByMedico()as $value) {
                    $especialidades_no_selected[$value['especialidad_id']] = $value['especialidad_id'];
                }
                $result = array_diff_key($especialidades_no_selected, $especialidades_selected);
                echo '</br>';
                foreach ($result as $value) {
                    $id = $this->especialidad_medico->buscarByMedicoEspecialidad($value);
                    $this->especialidad_medico->eliminar($id['0']['id']);
                }
            }
            $this->medico->editar($datos);
            $this->buscar();
        }else{
            $this->session->set_flashdata('error', 'datos incorrectos');
            $this->modificar();
        }
    }

}
